#include "Rectangle.h"
#include "Classe_graphe.h"
#include "Classe_point.h"

Rectangle::Rectangle(void) : Graphe() {
  this->Lx = 1.0;
  this->Ly = 2.0;
  
  Point Vec[4];
  // origine en 0
  Vec[0].setX(0.0);
  Vec[0].setY(0.0);

  // largeur = 1 et longueur = 2
  Vec[1].setX(1.0);
  Vec[1].setY(0.0);
  
  Vec[2].setX(1.0);
  Vec[2].setY(2.0);

  Vec[3].setX(0.0);
  Vec[3].setY(2.0);
  
  Graphe::addPoints(Vec, 4);
}

Rectangle::Rectangle(const Point& origine, const double _Lx, const double _Ly) : Graphe() {
  this->Lx = _Lx;
  this->Ly = _Ly;
  
  Point Vec[4];
  // origine
  Vec[0].setX(origine.getX());
  Vec[0].setY(origine.getY());
  
  // calcul des coordonnees des autres points
  Vec[1].setX(origine.getX() + _Lx);
  Vec[1].setY(origine.getY());
  
  Vec[2].setX(origine.getX() + _Lx);
  Vec[2].setY(origine.getY() + _Ly);
 
  Vec[3].setX(origine.getX());
  Vec[3].setY(origine.getY() + _Ly);

  Graphe::addPoints(Vec, 4);
}

Rectangle::~Rectangle(void) {
  // le compilateur se chargera d'appeler le destructeur de la classe Graphe
  // donc rien a faire de special
}

double Rectangle::getLX(void) const {
  return this->Lx;
}

double Rectangle::getLY(void) const {
  return this->Ly;
}

void Rectangle::printPoints(void) const {
  Graphe::printPoints();
}


double Rectangle::getPerimetre(void) const {
  return Graphe::getPerimetre();
}

double Rectangle::getAire(void) const {
  return Graphe::getAire();
}
